<?php

class MedicoconvenioProcedimento extends AppModel {
	
	var $belongsTo = array('MedicoConvenio','Procedimento');
	
	var $actsAs = array('AjusteFloat');
	
	var $validate = array(
        'procedimento_id' => array(
            'vazio' => array(
                'rule' => 'notEmpty',
                'required' => true,
                'message' => 'Procedimento deve ser informado!',
                'last' => true
			)
		),
        'tipo_preco' => array(
            'vazio' => array(
                'rule' => 'notEmpty',
                'required' => true,
                'message' => 'Tipo do preço deve ser informado!',
                'last' => true
			)
		)		
	);
	
	public function carregar_tipo_preco() {
		return array(
			'C' => 'Convênio', 
			'P' => 'Próprio'
		);
	}
	
	public function get_atendimentos_por_dia($medico_id, $convenio_id, $procedimento_id) {
		
		$medico_convenio_id = $this->MedicoConvenio->get_id($medico_id, $convenio_id);
		
		if (!$medico_convenio_id)
			return null;
		
		return $this->field('atendimentos_por_dia', array('medico_convenio_id' => $medico_convenio_id, 'procedimento_id' => $procedimento_id));
	}
	
	public function get_convenio_id($id) {
		return $this->MedicoConvenio->get_convenio_id($this->get_medico_convenio_id($id));		
	}
	
	public function get_list_procedimentos($medico_convenio_id) {
		$convenio_id = $this->MedicoConvenio->get_convenio_id($medico_convenio_id);
		return $this->MedicoConvenio->Convenio->ConvenioProcedimento->get_list_procedimentos($convenio_id);
	}
	
	public function get_medico_convenio_id($id) {
		return $this->field('medico_convenio_id', array('id' => $id));
	}

	public function get_convenio_nome($id) {
		return $this->MedicoConvenio->get_nome_convenio($this->get_medico_convenio_id($id));
	}

	public function get_observacoes_procedimento($medico_convenio_id, $procedimento_id, $convenio_id = null) {
		
		$retorno = null;
		
		$observacoes1 = $this->field('observacoes', array('medico_convenio_id' => $medico_convenio_id, 'procedimento_id' => $procedimento_id));
		
		if ($observacoes1) {
			$retorno = '<u>Observações do Procedimento no Convênio do Médico:</u><br />' . $observacoes1 . '<br /><br />';
		} 
		
		if ($convenio_id) {
			$observacoes2 = $this->MedicoConvenio->Convenio->ConvenioProcedimento->get_observacao($convenio_id, $procedimento_id);
			if ($observacoes2)
				$retorno .= '<u>Observações do Procedimento no Convênio:</u><br />' . $observacoes2;  
		}
		return $retorno;
	}
		
	public function get_preco_procedimento($medico_convenio_id, $convenio_id, $procedimento_id) {
		$tipo_preco = $this->get_tipo_preco($medico_convenio_id, $procedimento_id);
		if ($tipo_preco == 'P') {
			return $this->get_preco_proprio($medico_convenio_id, $procedimento_id);
		} else {
			return $this->MedicoConvenio->Convenio->ConvenioProcedimento->get_valor($convenio_id, $procedimento_id);
		}
	}
	
	public function get_preco_proprio($medico_convenio_id, $procedimento_id) {
		return $this->field('preco_proprio', array('medico_convenio_id' => $medico_convenio_id, 'procedimento_id' => $procedimento_id));
	}
	
	public function get_procedimento_id($id) {
		return $this->field('procedimento_id', array('id' => $id));
	}
	
	public function get_procedimento_nome($id) {
		return $this->Procedimento->get_nome($this->get_procedimento_id($id));
	}
	
	public function get_tipo_preco($medico_convenio_id, $procedimento_id) {
		return $this->field('tipo_preco', array('medico_convenio_id' => $medico_convenio_id, 'procedimento_id' => $procedimento_id));
	}
				
}